]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
6 years agoiconGrid: Merge PaginatedIconGrid and IconGrid
Georges Basile Stavracas Neto [Tue, 19 May 2020 02:01:41 +0000 (23:01 -0300)]
iconGrid: Merge PaginatedIconGrid and IconGrid

Now that the only user of the IconGrid is AppDisplay, and
it only uses the paginated icon grid, there's no point in
having the two classes split anymore.

In addition to that, future commits will introduce a layout
manager that will extend current icon grid features, and
merging PaginatedIconGrid and IconGrid in the same class will
vastly simplify this transition.

Merge PaginatedIconGrid into IconGrid, and adapt AppDisplay
to this change.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1267

6 years agoappDisplay: Merge AppDisplay in AllView
Georges Basile Stavracas Neto [Wed, 4 Dec 2019 16:43:57 +0000 (13:43 -0300)]
appDisplay: Merge AppDisplay in AllView

Now that AllView is the only actor that AppDisplay creates,
we can actually merge them together.

Merge AllView in AppDisplay, remove what used to be AppDisplay,
and rename AllView to AppDisplay.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/880

6 years agoappDisplay: Simplify AppDisplay
Georges Basile Stavracas Neto [Wed, 4 Dec 2019 13:47:58 +0000 (10:47 -0300)]
appDisplay: Simplify AppDisplay

Inherit St.Widget and remove the custom layout manager. Instead,
override vfunc_allocate(). Also remove the view stack.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/880

6 years agoappDisplay: Remove Frequent view
Georges Basile Stavracas Neto [Wed, 4 Dec 2019 13:42:44 +0000 (10:42 -0300)]
appDisplay: Remove Frequent view

The Frequent apps grid has a few problems:

 * On a fresh install there would be no history of app usage so the
   applications shown in the grid have no relevance it takes time
   to be useful instead of being useful from the start;

 * The grid has far too many items in it to be relevant; 24 apps is
   well beyond the average use case as most people don't frequently
   use that many, so it gets populated with several apps that are
   single use (hello xterm);

 * The position of items in the grid are always changing based on an
   unknown frequency metric (and not by user-intended input) which
   makes it a poor way to quickly launch apps as one would have to
   constantly learn the positions of the items in the grid;

 * Having two app grids is a bit superfluous and needlessly complicates
   the app launching navigation: you have to spend time checking the
   frequent grid and if it's not there you have to switch over to another
   grid and find the app you need in there it's not straightforward.

Remove the Frequent tab and simplify the related code.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1425

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/880

6 years agopower: Fix icon when discharging at 100%
Florian Müllner [Tue, 26 May 2020 19:26:22 +0000 (21:26 +0200)]
power: Fix icon when discharging at 100%

The special-case for a fill level of 100 introduced in commit 5fd52e99d39
should only apply when charging, for the discharging state there's a
proper battery-level-100-symbolic icon.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2286

6 years agost/box-layout: Fix gtk-doc comments
Florian Müllner [Sun, 24 May 2020 17:24:23 +0000 (19:24 +0200)]
st/box-layout: Fix gtk-doc comments

Commit 9dc421875 added a subtle syntax error: # is used to cross
reference symbols, but must not be used in the definition of the
symbols itself.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1281

6 years agost/texture-cache: Cancel pending requests on icon-theme changes
Florian Müllner [Fri, 22 May 2020 20:53:39 +0000 (22:53 +0200)]
st/texture-cache: Cancel pending requests on icon-theme changes

As outlined in commit 36b8dcbe07, we can end up with wrong icons
if the icon theme changes right after a GTK theme change to/from
HighContrast triggered a theme reload.

That's because when we reload icons for the new icon theme, there
are already pending requests due to the icon-style change; those
requests are simply re-used for the new icons, with the existing
icon infos from the old theme.

The above commit applied a simple work-around by changing the
icon theme before the GTK theme, but that only works for the
HighContrast switch in our own UI.

It turns out that Settings also uses the "wrong" order, so the
issue still reproduces with the Universal Access panel.

So instead of relying on everything changing the settings in the
order we expect, cancel all ongoing requests on icon-theme changes.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1277

6 years agotheme: Make world clock times tabular
PrOF-kk [Sun, 24 May 2020 10:55:26 +0000 (12:55 +0200)]
theme: Make world clock times tabular

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2825

6 years agopanel: fix size of battery percentage label
Björn Daase [Sat, 23 May 2020 20:48:47 +0000 (22:48 +0200)]
panel: fix size of battery percentage label

Adjust the label of the (optional) battery percentage in the top
bar to have the same size as all other text in the top bar.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2652

6 years agoUpdate German translation
Christian Kirbach [Sun, 24 May 2020 16:06:24 +0000 (16:06 +0000)]
Update German translation

(cherry picked from commit bc3c1e5a68db8318583622e0087add70dec2aa58)

6 years agoUpdate Romanian translation
Florentina Mușat [Sun, 24 May 2020 10:43:48 +0000 (10:43 +0000)]
Update Romanian translation

6 years agoUpdate Slovak translation
Dušan Kazik [Sun, 24 May 2020 07:27:55 +0000 (07:27 +0000)]
Update Slovak translation

(cherry picked from commit b148a8bc6093d18ba28dee33512f0545abd041d3)

6 years agoscreenshot: Add preview to color picker
Florian Müllner [Mon, 30 Jul 2018 16:31:17 +0000 (18:31 +0200)]
screenshot: Add preview to color picker

With color picking implemented in the compositor, we
can do better than letting the user pick a pixel with
the crosshair cursor, and present them with a preview
of the color that will be selected.

Do this by replacing the cursor with a custom icon and
apply a recoloring effect, where we replace a given color
with the color of the currently hovered pixel (similar
to a green screen).

https://gitlab.gnome.org/GNOME/gnome-shell/issues/451

6 years agosearch: Remove usage of allocation flags
Jonas Dreßler [Fri, 22 May 2020 09:53:05 +0000 (11:53 +0200)]
search: Remove usage of allocation flags

Allocation flags have been removed from Clutter, and commit
400d045a6aa1b4703a3fdd5cf5c7e9b54aa60afd accidentally added their
arguments again which causes a warning, so remove those arguments.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1276

6 years agoUpdate Ukrainian translation
Yuri Chornoivan [Fri, 22 May 2020 05:44:50 +0000 (05:44 +0000)]
Update Ukrainian translation

6 years agoUse pid_t for meta_window_get_pid()
Jonas Dreßler [Wed, 8 Apr 2020 14:23:11 +0000 (16:23 +0200)]
Use pid_t for meta_window_get_pid()

The return value of meta_window_get_pid() changed again and it now
returns pid_t, which usually just resolves to int on most platforms. We
should still use pid_t now though, so do that.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1188

6 years agoStClipboard: add st_clipboard_get_mimetypes
Andy Holmes [Thu, 21 May 2020 19:24:14 +0000 (12:24 -0700)]
StClipboard: add st_clipboard_get_mimetypes

Since the `MetaSelection` of the global `StClipboard` is private (and
should be), there is no reasonable way for extensions or external code
to query the supported mime-types.

Add `st_clipboard_get_mimetypes()` so this can be queried without
poking around in private code.

closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2819

6 years agoextensions-app: Indicate extension errors
Florian Müllner [Mon, 11 May 2020 13:31:29 +0000 (15:31 +0200)]
extensions-app: Indicate extension errors

Currently there is no indication that an extension had an error except
for the sensitivity of the switch (which may have a different cause).

This is useful information to users, so add a small error indicator
alongside the updates icon and show the actual error in the details.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2337

6 years agoextensionSystem: Don't log error name
Florian Müllner [Mon, 11 May 2020 23:12:50 +0000 (01:12 +0200)]
extensionSystem: Don't log error name

logExtensionError() currently saves the error message by calling
toString() on the passed error. That's convenient as it allows to
pass a string instead of a "proper" error, but the result isn't
great for the common Error case: Its toString() method prefixes
the message with the error name, which usually is just "Error:".

The plain message is more suitable for displaying it to users,
so use that for Error objects.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2337

6 years agoextensions-app: Reset switch handle when it becomes insensitive
Florian Müllner [Mon, 18 May 2020 12:24:16 +0000 (14:24 +0200)]
extensions-app: Reset switch handle when it becomes insensitive

Currently the switches handle position reflects the requested
extension state (as in: the user (de)activated the switch),
while the actual extension state is reflected by the underlying
state.

That doesn't work well when the switch is insensitive though (for
example on error), because the desaturation neuters the color
that reflects the state.

Address this by resetting the switch handle to the state when
making it insensitive.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1263

6 years agost: Remove BoxLayout child meta
Florian Müllner [Wed, 20 May 2020 23:11:04 +0000 (01:11 +0200)]
st: Remove BoxLayout child meta

They were deprecated last cycle in favor of ClutterActor's own
expand/align properties, time to retire them for good.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1274

6 years agost/theme: Remove entry from files_by_stylesheet after emitting signal
Jonas Dreßler [Mon, 11 May 2020 18:41:37 +0000 (20:41 +0200)]
st/theme: Remove entry from files_by_stylesheet after emitting signal

Since e06109c23ce2a6dd53d32c26a89ab46a952d7373 we keep old theme nodes
valid during the emission of the "custom-stylesheets-changed" signal.

It turns out that we might still look up the file of a stylesheet using
the files_by_stylesheet hashtable during the emission of that signal,
causing a crash because the assertion in _st_theme_resolve_url() fails.

So fix that and remove the stylesheet entry from the files_by_stylesheet
hashtable after emitting the "custom-stylesheets-changed" signal. And to
be consistent, also remove the entry from the stylesheets_by_file
hashtable after emitting the signal.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2757
6 years agoStBoxLayout: Fix up some documentation
Andy Holmes [Wed, 20 May 2020 19:47:35 +0000 (12:47 -0700)]
StBoxLayout: Fix up some documentation

`StBoxLayout` has a couple properties (`vertical` and `pack-start`)
improperly referenced as signals, and is somewhat unclear these
properties are wrappers around the underlying `ClutterBoxLayout`
properties.

Fix these up and add references to the underlying properties, rather
than redescribing them.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2816

6 years agost: Remove deprecated Bin properties
Florian Müllner [Thu, 21 May 2020 03:21:47 +0000 (05:21 +0200)]
st: Remove deprecated Bin properties

Those were deprecated last cycle in favor of ClutterActor's own
expand/align properties, and don't have any effect anymore.

Time to remove them for good.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1273

6 years agojs: Listen to notify::allocation instead of allocation-changed
Jonas Dreßler [Sat, 9 May 2020 19:37:18 +0000 (21:37 +0200)]
js: Listen to notify::allocation instead of allocation-changed

ClutterActors "allocation-changed" signal was removed since it's no
longer needed now that there are no ClutterAllocationFlags anymore.

See https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1245

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1245

6 years agoRemove ClutterAllocationFlags
Jonas Dreßler [Sat, 9 May 2020 19:30:26 +0000 (21:30 +0200)]
Remove ClutterAllocationFlags

Those flags were removed from Clutter since they're pretty much unused,
so remove them here, too.

See https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1245

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1245

6 years agoiconGrid: Remove dead code
Georges Basile Stavracas Neto [Mon, 18 May 2020 16:51:46 +0000 (13:51 -0300)]
iconGrid: Remove dead code

Remove unused methods from IconGrid.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1265

6 years agosearch: Replace IconGrid from grid search results
Georges Basile Stavracas Neto [Mon, 18 May 2020 16:37:03 +0000 (13:37 -0300)]
search: Replace IconGrid from grid search results

Replace the usage of IconGrid in the grid search results by
a custom layout manager that only allocates as many children
as the actor can fit.

This new layout manager does not implement changing the icon
size depending on the screen size.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1265

6 years agoenvironment: Replace monkey-patched method with Symbol.iterator
Florian Müllner [Tue, 19 May 2020 19:29:49 +0000 (21:29 +0200)]
environment: Replace monkey-patched method with Symbol.iterator

This allows using the actor itself as iterator:

  for (let child of container)
      doStuff(child);

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1269

6 years agoenvironment: Monkey-patch iterate_children() generator
Florian Müllner [Tue, 19 May 2020 18:59:36 +0000 (20:59 +0200)]
environment: Monkey-patch iterate_children() generator

This is a small convenience method for using ClutterActor's iterator API
with javascript's built-in iterator protocol, for example as:

  for (let child of container.iterate_children())
      doStuff(child);

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1268

6 years agonotificationDaemon: Fix grouping by PID
Florian Müllner [Fri, 15 May 2020 13:28:17 +0000 (15:28 +0200)]
notificationDaemon: Fix grouping by PID

For fd.o notifications, we are taking the sender's PID into
account when associating notifications with sources (mainly
to deal with notify-send).

This broke when the implementation under the well-known name
was moved into a separate service, as the implementation in
gnome-shell will now always see the public notification-daemon
as sender.

Restore the old behavior by resolving the sender PID in the
separate service, and pass it as hint to the implementation
in gnome-shell.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2592

6 years agoextensionSystem: Prevent broken updates
Florian Müllner [Thu, 7 May 2020 11:54:24 +0000 (13:54 +0200)]
extensionSystem: Prevent broken updates

Spidermonkey caches imports, which means that uninstalling an
old extension version and installing a new one doesn't work as
expected: If the previous version was loaded, then its code will
be imported instead.

For the last couple of releases this has been a reliable source
of extension bug reports after major GNOME updates. Thankfully
chrome-gnome-shell removed its update support in favor of our
built-in support now, but users may still use older versions
or perform those actions manually, so it still makes sense to
catch this case and set an appropriate error.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1248

6 years agodateMenu: Remove unused property
Florian Müllner [Mon, 18 May 2020 10:50:57 +0000 (12:50 +0200)]
dateMenu: Remove unused property

This is a left-over from an earlier iteration where the session's
presence status was used rather than the GSetting.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2796

6 years agocalendar: Fix initial do-not-disturb state
Florian Müllner [Mon, 18 May 2020 16:44:57 +0000 (18:44 +0200)]
calendar: Fix initial do-not-disturb state

The do-not-disturb button and the contained switch are
tied together via a bidirectional property binding.

However it still matters which objects are used as source
and target, as that will determine the initial state: Right
now the (unchecked) button is used as source, which means
that do-not-disturb is turned off on startup.

We want the state to be preserved, so swap source and target
to let the switch (that is bound to the underlying GSetting)
control the initial state.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2804

6 years agostatus: Pass scroll events to volume and brightness sliders
Peter Simonyi [Sat, 16 May 2020 13:04:32 +0000 (09:04 -0400)]
status: Pass scroll events to volume and brightness sliders

Sliders can be operated by mouse scroll, but the mouse has to be over
the slider control.  Make the brightness and volume system menu entries
forward scroll events to the sliders they contain so that scrolling
anywhere on the menu item operates the slider.

Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2795

6 years agoUpdate Serbian translation
Марко Костић [Sun, 17 May 2020 19:22:39 +0000 (19:22 +0000)]
Update Serbian translation

(cherry picked from commit db2917479acbc9d6878fd291ba46a05df48260e6)

6 years agoextensionSystem: Update canChange on error
Florian Müllner [Sun, 10 May 2020 18:21:03 +0000 (20:21 +0200)]
extensionSystem: Update canChange on error

Whether or not an extension has errors influences the 'canChange'
property, but so far we only update it for errors that occur when
initializing the extension, not when an extension is enabled later.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1249

6 years agoUpdate Finnish translation
Jiri Grönroos [Sat, 16 May 2020 11:02:59 +0000 (11:02 +0000)]
Update Finnish translation

(cherry picked from commit 5815f9ac0eb6ecfc97cbb4aa8c6f0276716a8015)

6 years agoUpdate Turkish translation
Emin Tufan Çetin [Sat, 16 May 2020 09:12:43 +0000 (09:12 +0000)]
Update Turkish translation

6 years agodateMenu: Update timezone offsets when timezone changes
Bryan Dunsmore [Thu, 14 May 2020 22:04:12 +0000 (17:04 -0500)]
dateMenu: Update timezone offsets when timezone changes

Adds a signal handler to update the timezone offsets whenever the
user changes the system timezone.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2209

6 years agoUpdate Catalan translation
Jordi Mas [Fri, 15 May 2020 18:43:22 +0000 (20:43 +0200)]
Update Catalan translation

6 years agoextensionDownloader: Replace deprecated Soup.SessionAsync
Michael Lass [Thu, 14 May 2020 18:40:57 +0000 (20:40 +0200)]
extensionDownloader: Replace deprecated Soup.SessionAsync

Soup.SessionAsync by default sets timeout and idle_timeout to 0. This
causes connections to hang around in state CLOSE_WAIT forever after the
remote host has closed the connection.

To fix this, we could set timeout and idle_timeout manually. However,
Soup.SessionAsync is marked as deprecated anyway and should be replaced
by Soup.Session. Doing so also sets a default timeout of 60 seconds.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2774

6 years agodash: Allow adding favorites out of favorites zone
Bryan Dunsmore [Wed, 13 May 2020 16:28:53 +0000 (11:28 -0500)]
dash: Allow adding favorites out of favorites zone

Previously, you could not add favorites outside of the favorites zone.
This change inserts a placeholder at the end of the favorites zone if
you are outside of it.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2777

6 years agoUpdate Indonesian translation
Kukuh Syafaat [Thu, 14 May 2020 09:42:52 +0000 (09:42 +0000)]
Update Indonesian translation

(cherry picked from commit bc6a3329b4c8b4d277824b02aa3c057b517b7e9b)

6 years agoextensionSystem: Disable extension before unloading stylesheet
Florian Müllner [Wed, 13 May 2020 18:10:56 +0000 (20:10 +0200)]
extensionSystem: Disable extension before unloading stylesheet

Removing a stylesheet from the theme will trigger a style update. There's
little point in updating the extension actors that are about to be destroyed
(hopefully), so call the extension's disable() function first.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2757

6 years agompris: Prevent DBus race when creating media players
Bryan Dunsmore [Wed, 13 May 2020 05:38:01 +0000 (00:38 -0500)]
mpris: Prevent DBus race when creating media players

Sometimes an MPRIS media player will create and then destroy an object
before the signals that handle the object's destruction can be created.
This verifies that the object still exists after the necessary signals
have been created.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2776

6 years agoUpdate Japanese translation
sicklylife [Wed, 13 May 2020 15:16:58 +0000 (15:16 +0000)]
Update Japanese translation

6 years agoUpdate Japanese translation
sicklylife [Wed, 13 May 2020 15:08:22 +0000 (15:08 +0000)]
Update Japanese translation

6 years agowindowManager: Allow xwayland startup to complete without systemd
Florian Müllner [Tue, 12 May 2020 15:16:34 +0000 (17:16 +0200)]
windowManager: Allow xwayland startup to complete without systemd

Since commit 0ecddafc207 gsd-xsettings startup has been made conditional
on the systemd user instance being available at runtime. While that is
correct, it means that completing xwayland startup is also conditional
now.

We always want xwayland startup to go ahead, so wait for the XSettings
plugin to appear on the bus when gsd-xsettings is launched by gnome-session
and complete the task immediately if startup fails.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1252

6 years agoUpdate Persian translation
Danial Behzadi [Tue, 12 May 2020 14:24:58 +0000 (14:24 +0000)]
Update Persian translation

6 years agoUpdate French translation
Charles Monzat [Tue, 12 May 2020 14:14:34 +0000 (14:14 +0000)]
Update French translation

(cherry picked from commit e8e79173d90982d269a93cd73638c57851a7aa86)

6 years agoUpdate Swedish translation
Anders Jonsson [Mon, 11 May 2020 22:35:45 +0000 (22:35 +0000)]
Update Swedish translation

(cherry picked from commit 884a2623a0d050a3cf183d580fe27f94cb599184)

6 years agoUpdate Italian translation
Milo Casagrande [Mon, 11 May 2020 15:52:39 +0000 (15:52 +0000)]
Update Italian translation

(cherry picked from commit fbdb56eb6da8d74503c1164a4fcbfee3e72eaf73)

6 years agoworkspacesView: Lower scroll timeout
Alexander Mikhaylenko [Sat, 9 May 2020 14:27:00 +0000 (19:27 +0500)]
workspacesView: Lower scroll timeout

Looks like 250ms is too high, lower it to 150ms.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2602

6 years agoappDisplay: Lower scroll timeout
Alexander Mikhaylenko [Sat, 9 May 2020 14:26:37 +0000 (19:26 +0500)]
appDisplay: Lower scroll timeout

Looks like 250ms is too high, lower it to 150ms.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2602

6 years agoshell: Fix return value if the systemd unit is actually successfully run
Carlos Garnacho [Fri, 8 May 2020 17:10:48 +0000 (19:10 +0200)]
shell: Fix return value if the systemd unit is actually successfully run

This got broken by last minute changes in commit 2d56395921. There's no change
too simple.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1242

6 years agoUpdate Romanian translation
Florentina Mușat [Fri, 8 May 2020 16:32:22 +0000 (16:32 +0000)]
Update Romanian translation

6 years agosystemActions: Use 'system-log-out-symbolic' for logout
Amr Ibrahim [Thu, 7 May 2020 19:19:32 +0000 (19:19 +0000)]
systemActions: Use 'system-log-out-symbolic' for logout

Changing the icon to 'system-log-out-symbolic' has no visual
change in a default GNOME setup since both 'system-log-out-symbolic'
and 'application-exit-symbolic' are the same in adwaita-icon-theme
(at the time of writing), however, other icon themes differentiate
between the two icons so pointing to the appropriate icon name
is the right thing to do.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2751

6 years agoextensions-app: Add permission to talk to gnome-session
Florian Müllner [Sat, 2 May 2020 21:38:57 +0000 (23:38 +0200)]
extensions-app: Add permission to talk to gnome-session

This is required for offering a "Logout" option when handling extension
updates.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2735

6 years agoextensions-app: Fix Logout call
Florian Müllner [Sat, 2 May 2020 21:32:04 +0000 (23:32 +0200)]
extensions-app: Fix Logout call

Commit 764527c8c9b adjusted the "call" call to promisification that
never happened (in this bit of code).

We can either add back a callback or properly promisify the call;
this opts for the latter.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2735

6 years agoUpdated Spanish translation
Daniel Mustieles [Thu, 7 May 2020 14:48:35 +0000 (16:48 +0200)]
Updated Spanish translation

6 years agopanel: Center app icon
Florian Müllner [Thu, 7 May 2020 12:25:13 +0000 (14:25 +0200)]
panel: Center app icon

Giving the icon extra space may distort it, so center it vertically.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2578

6 years agoUpdate British English translation
Bruce Cowan [Thu, 7 May 2020 10:48:02 +0000 (10:48 +0000)]
Update British English translation

(cherry picked from commit 6a9ce0f18ca07bd51d759cf45fbb2e225637d1fd)

6 years agoshell: Check we are in a systemd environment before starting systemd units
Carlos Garnacho [Wed, 6 May 2020 08:57:54 +0000 (10:57 +0200)]
shell: Check we are in a systemd environment before starting systemd units

Avoid starting/stopping the gsd-xsettings systemd unit if the shell itself
was not started via systemd. In the lack of a user session manager, we
have no means to neatly start/stop services, so should rely on the good
ol' gnome-session to do this for us.

This changes the return value meaning slightly, TRUE means "service did
start", FALSE otherwise. The error is only raised if we ought to start,
but it produced an error somehow.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1238
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2755

6 years agowindowManager: Handle return value/errors from systemd unit calls
Carlos Garnacho [Thu, 7 May 2020 09:15:46 +0000 (11:15 +0200)]
windowManager: Handle return value/errors from systemd unit calls

These may produce errors, and return a value indicating we should
proceed further. Check for those when starting/stopping gsd-xsettings.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1238
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2755

6 years agoUpdate Dutch translation
Nathan Follens [Wed, 6 May 2020 11:13:18 +0000 (11:13 +0000)]
Update Dutch translation

(cherry picked from commit 473a666cc0b9b715bd53057d47de149cecf03e7c)

6 years agoUpdate Ukrainian translation
Yuri Chornoivan [Mon, 4 May 2020 17:21:20 +0000 (17:21 +0000)]
Update Ukrainian translation

6 years agoUpdated Spanish translation
Daniel Mustieles [Mon, 4 May 2020 14:41:18 +0000 (16:41 +0200)]
Updated Spanish translation

6 years agoshell-app: Add PrefersNonDefaultGPU support to shell_app_launch()
Bastien Nocera [Wed, 29 Apr 2020 09:20:40 +0000 (11:20 +0200)]
shell-app: Add PrefersNonDefaultGPU support to shell_app_launch()

Read the "PrefersNonDefaultGPU" key in desktop files to figure out
whether the application prefers running on the discrete GPU, or the
default GPU, and apply that.

Update the "Launch..." contextual menu to allow launching on
the default GPU if the application "prefers [the] non default GPU".

See:
https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#recognized-keys

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/1804

6 years agoshell-app: Downgrade not finding a discrete GPU to debug
Bastien Nocera [Wed, 29 Apr 2020 09:19:28 +0000 (11:19 +0200)]
shell-app: Downgrade not finding a discrete GPU to debug

As we'll want to call this unconditionally soon.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1226

6 years agoappDisplay: Use global switcheroo-control D-Bus proxy
Bastien Nocera [Tue, 28 Apr 2020 15:37:29 +0000 (17:37 +0200)]
appDisplay: Use global switcheroo-control D-Bus proxy

Rather than creating our own.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1226

6 years agoshell/global: Notify when switcheroo-control prop changes
Bastien Nocera [Tue, 28 Apr 2020 15:36:48 +0000 (17:36 +0200)]
shell/global: Notify when switcheroo-control prop changes

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1226

6 years agoshell/global: Make switcheroo-control available from JS
Bastien Nocera [Tue, 28 Apr 2020 15:25:18 +0000 (17:25 +0200)]
shell/global: Make switcheroo-control available from JS

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1226

6 years agoshell/global: Watch for switcheroo-control appearing
Bastien Nocera [Tue, 28 Apr 2020 15:24:06 +0000 (17:24 +0200)]
shell/global: Watch for switcheroo-control appearing

Rather than staticly expecting switcheroo-control to already be running
on the system, wait for it appearing and disappearing.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1226

6 years agoUpdated Spanish translation
Daniel Mustieles [Mon, 4 May 2020 07:57:45 +0000 (09:57 +0200)]
Updated Spanish translation

6 years agoAdd Ossetian translation
Soslan Khubulov [Sun, 3 May 2020 16:06:23 +0000 (16:06 +0000)]
Add Ossetian translation

6 years agoibusManager: Fix the panel after porting to Promises
Ting-Wei Lan [Sun, 3 May 2020 15:26:39 +0000 (23:26 +0800)]
ibusManager: Fix the panel after porting to Promises

Commit 764527c8c9b7659901eb6296a6859ae2b0eabdb8 not only ports this file
to Promises but also changes the behavior of _initPanelService method.
Instead of always calling _updateReadiness when _panelService is ready,
it only calls it when get_global_engine_async succeeds.

The only callers of _updateReadiness are _initEngines and
_initPanelService. Assume that _initEngines completes first. Its
_updateReadiness call keeps _ready as false and it is expected for
_initPanelService to change it to true. However, since
get_global_engine_async fails because there is no active engine,
_initPanelService never calls _updateReadiness. Therefore, all setEngine
calls do nothing because _ready is false, and the input method panel
never shows. Users are unable to use any input method even if they can
see that ibus-daemon is already running.

Fix the issue by changing it back to the old behavior.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1235

6 years agoUpdate Polish translation
Piotr Drąg [Sat, 2 May 2020 19:44:46 +0000 (21:44 +0200)]
Update Polish translation

Fixes https://gitlab.gnome.org/Teams/Translation/pl/-/issues/6

6 years agoUpdate Slovak translation
Dušan Kazik [Sat, 2 May 2020 14:07:10 +0000 (14:07 +0000)]
Update Slovak translation

(cherry picked from commit e4199c71cc13ad967ddb797662e10eed538252f6)

6 years agoUpdate Chinese (Taiwan) translation
Cheng-Chia Tseng [Sat, 2 May 2020 08:07:05 +0000 (08:07 +0000)]
Update Chinese (Taiwan) translation

6 years agoappFavorites: Add eog to rename list
Michael Catanzaro [Fri, 1 May 2020 22:12:50 +0000 (17:12 -0500)]
appFavorites: Add eog to rename list

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1233

6 years agoUpdate Ukrainian translation
Yuri Chornoivan [Fri, 1 May 2020 15:57:22 +0000 (15:57 +0000)]
Update Ukrainian translation

6 years agost/theme: Unref CRStylesheet after removing old theme nodes
Jonas Dreßler [Thu, 30 Apr 2020 20:23:52 +0000 (22:23 +0200)]
st/theme: Unref CRStylesheet after removing old theme nodes

Since we now remove all theme nodes on a stylesheet change (ie.
StTheme's "custom-stylesheets-changed" signal) instead of only
invalidating them, those nodes may not be accessed anymore as soon as
"custom-stylesheets-changed" is emitted.

It turned out though that when comparing them to the newly generated
nodes in `st_widget_recompute_style()` using the
`st_theme_node_paint/geometry_equal()` functions, the properties of the
old nodes will still be accessed, causing a crash since the
CRDeclarations are already freed.

To fix that, keep the reference to the CRStylesheet, which owns the
CRDeclarations used by the theme nodes, around a bit longer, so it's
still possible to access the CRDeclarations inside the
"custom-stylesheets-changed" signal handler. This allows us to compare
the old theme nodes to the new ones since the CSS properties of both are
still valid.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2709

6 years agoextensions-app: Fix translatable string
AsciiWolf [Fri, 1 May 2020 11:50:34 +0000 (13:50 +0200)]
extensions-app: Fix translatable string

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1231

6 years agoUpdate Chinese (Taiwan) translation
Cheng-Chia Tseng [Thu, 30 Apr 2020 17:31:56 +0000 (17:31 +0000)]
Update Chinese (Taiwan) translation

(cherry picked from commit dff855942e6e48901f0fb3abfefb655ef6beae10)

6 years agomessageTray: Add missing property getter
Florian Müllner [Wed, 29 Apr 2020 22:43:32 +0000 (00:43 +0200)]
messageTray: Add missing property getter

gjs has gotten less forgiving about missing getters/setters, and
commit 6aa1b817 missed the missing getter in the base policy class.

Most notifications use a policy subclass that already provides a
getter, but at least Main.notify() and friends don't; unbreak them
by fixing the base class.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1229

6 years agoUpdate Friulian translation
Fabio Tomat [Wed, 29 Apr 2020 22:34:43 +0000 (22:34 +0000)]
Update Friulian translation

6 years agoBump version to 3.37.1
Florian Müllner [Wed, 29 Apr 2020 16:51:29 +0000 (18:51 +0200)]
Bump version to 3.37.1

Update NEWS.

6 years agomain: Unset the right prevFocus actor after the focus stack got shifted
Jonas Dreßler [Tue, 28 Apr 2020 21:26:11 +0000 (23:26 +0200)]
main: Unset the right prevFocus actor after the focus stack got shifted

When a modal that's not on top of the modalActorFocusStack gets popped,
we shift the focus stack as described in popModal() to ensure the chain
remains correct. That however destroys the association of a modal actor
and its prevFocus actor on the focus stack, because the prevFocus actors
are now moved to different entries of the stack.

Now when a prevFocus actor gets destroyed, we don't handle that case
correctly and search for the modal actor that was associated with the
prevFocus actor before the stack was shifted, which means we end up
unsetting the wrong prevFocus actor.

So fix that and search the stack for the prevFocus actor which is being
destroyed instead to unset the correct entry.

Thanks to Florian Müllner for figuring out the actual issue and
proposing this fix.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2446

6 years agost/theme-context: Also remove theme nodes on stylesheet changes
Jonas Dreßler [Sat, 25 Apr 2020 11:17:13 +0000 (13:17 +0200)]
st/theme-context: Also remove theme nodes on stylesheet changes

StThemeNodes are built around the assumption that they're "immutable",
that means they are created once with certain parameters (that resolve
to certain css properties) and then replaced with new ones in case those
parameters changed.

Changes to the internal information stored by theme nodes (i.e. the css
properties, font names or the cached scale-factor) are not all handled
the same though: For changes to the font or the scale-factor we remove
all theme nodes from the cache and let the widgets which are on stage
generate new theme nodes. For changes to the css properties/the
stylesheet, we invalidate the properties of all theme nodes but keep
them in the cache using `_st_theme_node_reset_for_stylesheet_change()`.

So be a bit more consistent and handle changes to the css-properties/the
stylesheet stored by StThemeNodes the same way as changes to the font or
scale-factor.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1218

6 years agost: Ensure to reset all widget theme nodes
Carlos Garnacho [Sat, 25 Apr 2020 16:31:11 +0000 (18:31 +0200)]
st: Ensure to reset all widget theme nodes

Theme node invalidation stops at unmapped widgets, and widgets
that forget to chain up to the default ::style-changed implementation.
This may leave stale nodes that were invalidated on
StThemeContext::changed, but are still set on widgets, and maybe
used for CSS property lookups.

Make sure that theme node invalidation happens always by moving
propagation outside the vfunc, and ensure the theme nodes are reset
across the full actor tree. Emission of ::style-changed, and obtaining
a new theme node may be delayed till when the actor is mapped.

The theme node is also cleared after unparenting an actor to avoid
stale references.

This ensures that all widgets get their theme node cleared after
stylesheet changes, instead of maybe being left with a theme node
that's been cleared of all its properties.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2541
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1223

6 years agoUpdate Turkish translation
Emin Tufan Çetin [Tue, 28 Apr 2020 13:19:54 +0000 (13:19 +0000)]
Update Turkish translation

6 years agoci: Rebase extension-ci image to F32
Florian Müllner [Sat, 4 Apr 2020 00:03:24 +0000 (02:03 +0200)]
ci: Rebase extension-ci image to F32

... and base our 'js' test on the js engine we are actually using.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1177

6 years agoci: Document how to build the image
Florian Müllner [Sat, 4 Apr 2020 00:35:12 +0000 (02:35 +0200)]
ci: Document how to build the image

Updating the CI image is rare enough to not know the involved
commands by heart, so adding a comment like mutter did a while
ago makes perfect sense.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1177

6 years agoci: Rename Dockerfile
Florian Müllner [Sat, 4 Apr 2020 00:22:00 +0000 (02:22 +0200)]
ci: Rename Dockerfile

Our primary image now comes from mutter, so the default Dockerfile
name is free for our JS image.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1177

6 years agokeyboard: Minor cleanup
Florian Müllner [Sat, 4 Apr 2020 00:00:35 +0000 (02:00 +0200)]
keyboard: Minor cleanup

Use the more concise operator shorthand.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1177

6 years agocleanup: Don't linebreak before closing parentheses
Florian Müllner [Fri, 3 Apr 2020 23:52:29 +0000 (01:52 +0200)]
cleanup: Don't linebreak before closing parentheses

Otherwise recent versions of eslint want "dangling" commas,
which is at least ugly considering that most functions don't
allow adding arguments at leasure.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1177

6 years agooverviewControls: Remove transitions before updating adjustment value
Florian Müllner [Mon, 27 Apr 2020 23:04:08 +0000 (01:04 +0200)]
overviewControls: Remove transitions before updating adjustment value

The workspace switcher blocks state updates while the indicator is
animating. Since commit 9c1940ef9db5 the indicator is considered to
be animating when the workspace adjustment's value doesn't equal the
active workspace.

There is one case though where this breaks badly: When a workspace
is inserted before the active one, the adjustment's upper and value
properties are changed without transitions. But if that change happens
while there's an ongoing transition to the previously active workspace,
the value gets out of sync with the active workspace and we end up
blocking state updates indefinitely.

Fix this by removing any transitions before setting the adjustment
value.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2625

6 years agoci: Cache eslint results
Florian Müllner [Sat, 14 Mar 2020 15:15:45 +0000 (16:15 +0100)]
ci: Cache eslint results

While this isn't useful during CI, it can provide a massive speed-up
when used locally.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1094

6 years agoAdd small gnome-shell-extension-prefs script
Florian Müllner [Mon, 27 Apr 2020 19:57:33 +0000 (21:57 +0200)]
Add small gnome-shell-extension-prefs script

Commit d76162c1c047c removed the ability to pass an extension UUID to
the Extensions app, when we moved the dialog to a portal and made
gnome-shell use it instead of spawning the extensions app.

However that missed that many extensions called out to the app to
open their own prefs.

While extensions are encouraged to switch to the new openPrefs()
convenience method added in commit 8030d9ad323e, restore the old
behavior with a small script under the old gnome-shell-extension-prefs
name that either calls out to the portal or launches the app.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1220